home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbdatabs / grocery.h < prev    next >
C/C++ Source or Header  |  1999-03-17  |  5KB  |  135 lines

  1. // ------------------------------- //
  2. // -------- Start of File -------- //
  3. // ------------------------------- //
  4. // ----------------------------------------------------------- //
  5. // C++ Header File Name: grocery.h 
  6. // Compiler Used: MSVC40, DJGPP 2.7.2.1, GCC 2.7.2.1, HP CPP 10.24
  7. // Produced By: Doug Gaer   
  8. // File Creation Date: 09/17/1997  
  9. // Date Last Modified: 03/18/1999
  10. // Copyright (c) 1997 Douglas M. Gaer
  11. // ----------------------------------------------------------- // 
  12. // ---------- Include File Description and Details  ---------- // 
  13. // ----------------------------------------------------------- // 
  14. /*
  15. The VBD C++ classes are copyright (c) 1997, by Douglas M. Gaer.
  16. All those who put this code or its derivatives in a commercial
  17. product MUST mention this copyright in their documentation for
  18. users of the products in which this code or its derivative
  19. classes are used. Otherwise, you have the freedom to redistribute
  20. verbatim copies of this source code, adapt it to your specific
  21. needs, or improve the code and release your improvements to the
  22. public provided that the modified files carry prominent notices
  23. stating that you changed the files and the date of any change.
  24.  
  25. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
  26. THE ENTIRE RISK OF THE QUALITY AND PERFORMANCE OF THIS SOFTWARE
  27. IS WITH YOU. SHOULD ANY ELEMENT OF THIS SOFTWARE PROVE DEFECTIVE,
  28. YOU WILL ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
  29. CORRECTION.
  30.  
  31. This is a test program used to test the (P)ersistent base class
  32. in a practical database application.
  33. */
  34. // ----------------------------------------------------------- //   
  35. #ifndef __GROCERY_HPP
  36. #define __GROCERY_HPP
  37.  
  38. #include "persist.h"
  39. #include "float64.h"
  40.  
  41. // Object type id
  42. const INT32 GroceryID = 1001;
  43.  
  44. // Class version
  45. const INT32 GroceryVersion = 1025;
  46.  
  47. typedef UString    ItemName;
  48. typedef UString    BrandName;
  49. typedef UString    Store;
  50. typedef FLOAT64    Price;
  51. typedef INT32      Quantity;
  52. typedef __SBYTE__  Purchasing;
  53. typedef FLOAT64    LineTotal;
  54.  
  55. class Grocery : public Persistent
  56. {
  57. public:
  58.   Grocery(POD *pod);
  59.   Grocery(const POD *pod);
  60.   Grocery();
  61.   Grocery(const Grocery &ob) { Copy(ob); }
  62.   void operator=(const Grocery &ob) { Copy(ob); }
  63.   ~Grocery() { }
  64.   
  65. public:
  66.   void SaveChanges();
  67.   void SetName(const char *s) { name = s; }
  68.   void SetName(const UString &s) { name = s; }
  69.   void SetBrand(const UString &s) { brand = s; }
  70.   void SetBrand(const char *s) { brand = s; }
  71.   void SetStore(const char *s) { store = s; }
  72.   void SetStore(const UString &s) { store = s; }
  73.   void SetPrice(Price p) { price = p; }
  74.   void SetQuantity(Quantity q) { quantity = q; }
  75.   void SetPurchasing(Purchasing p) { purchasing = p; }
  76.   void SetLineTotal(LineTotal t) { line_total = t; }
  77.   char *GetName() { return name.c_str(); }
  78.   char *GetBrand() { return brand.c_str(); }
  79.   char *GetStore() { return store.c_str(); }
  80.   const char *GetName() const { return name.c_str(); }
  81.   const char *GetBrand() const { return brand.c_str(); }
  82.   const char *GetStore() const { return store.c_str(); }
  83.   Price GetPrice() { return price; }
  84.   Price GetPrice() const { return price; }
  85.   Quantity GetQuantity() { return quantity; }
  86.   Quantity GetQuantity() const { return quantity; }
  87.   Purchasing GetPurchasing() { return purchasing; }
  88.   Purchasing GetPurchasing() const { return purchasing; }
  89.   LineTotal GetLineTotal() { return line_total; }
  90.   LineTotal GetLineTotal() const { return line_total; }
  91.   
  92. public:
  93.   void Copy(const Grocery &ob);
  94.   int FullCompare(const Grocery &ob);
  95.   
  96. private: // Base class interface
  97.   virtual FAU Write();
  98.   virtual void Read(FAU Address);
  99.   virtual FAU Find();
  100.   virtual FAU Delete();
  101.   virtual FAU Remove();
  102.   
  103. public: // Base class interface
  104.   virtual INT32 GetClassID() const { return GroceryID; }
  105.   virtual const char *GetClassName() { return "Class Grocery"; }
  106.   virtual unsigned ObjectLength();
  107.   virtual void SetObjectAddress(FAU addr) { objectaddress = addr; }
  108.   virtual FAU GetObjectAddress() { return objectaddress; }
  109.   virtual int CompareIndex();
  110.   virtual int RebuildIndexFile(const char *fname);
  111.   
  112. public: // Overloaded operators
  113.   friend int operator==(const Grocery &a, const Grocery &b);
  114.   friend int operator!=(const Grocery &a, const Grocery &b);
  115.   friend int operator>(const Grocery &a, const Grocery &b);
  116.   friend int operator>=(const Grocery &a, const Grocery &b);
  117.   friend int operator<(const Grocery &a, const Grocery &b);
  118.   friend int operator<=(const Grocery &a, const Grocery &b);
  119.  
  120. private:
  121.   ItemName   name;
  122.   BrandName  brand;
  123.   Store      store;
  124.   Price      price;
  125.   Quantity   quantity;
  126.   Purchasing purchasing;
  127.   LineTotal  line_total;
  128. };
  129.  
  130. #endif  // __GROCERY_HPP //
  131. // ----------------------------------------------------------- // 
  132. // ------------------------------- //
  133. // --------- End of File --------- //
  134. // ------------------------------- //
  135.